For this project Financial Services - JP Morgan (JPM), Goldman Sachs (GS) Utilities- DTE energy co(DTE) and AES corp.(AES) Tech: Amazon(AMZN) and Apple(AAPL)
Time period for our project was July 2012- July 2021, but for the purpose of this project, we only focused on July 2019-July 2021, capturing the Pandemic effects on our stocks.
Source: All the data has been sourced from yahoo finance and US Dept. of Treasury
Data Cleansing and Loading
## date Open High Low Close Adj.Close Volume
## 1 2012-07-02 96.56 97.30 95.59 97.13 84.35642 3515900
## 2 2012-07-03 97.13 98.77 96.63 98.60 85.63309 2251100
## 3 2012-07-05 98.21 98.21 95.89 95.92 83.30554 3736900
## 2285 2021-07-30 376.57 379.95 373.06 374.88 374.88000 1474900
## JPM.Open JPM.High JPM.Low JPM.Close JPM.Adjusted JPM.Volume
## 2012-07-02 36.27 36.36 35.59 36.28 28.08434 34274900
## 2012-07-03 35.96 36.14 35.54 35.88 28.00628 26705900
## 2012-07-05 35.61 35.66 34.22 34.38 26.83545 58519800
## 2021-07-30 152.58 153.67 151.20 151.78 151.78000 9804600
## AES.Open AES.High AES.Low AES.Close AES.Adjusted AES.Volume
## 2012-07-02 12.94 12.94 12.64 12.72 9.696997 3358200
## 2012-07-03 12.72 12.82 12.68 12.81 9.765604 3649200
## 2012-07-05 12.75 12.88 12.71 12.83 9.780853 4550700
## 2021-07-30 23.89 24.22 23.65 23.70 23.700001 5208900
## DTE.Open DTE.High DTE.Low DTE.Close DTE.Adjusted DTE.Volume
## 2012-07-02 50.02553 51.03830 50.02553 50.53617 36.88431 1574618
## 2012-07-03 50.51915 50.70638 50.43404 50.68085 36.98992 438980
## 2012-07-05 50.50213 50.85106 50.37447 50.37447 36.76629 841653
## 2021-07-30 117.91000 118.66000 116.95000 117.32000 117.32000 643000
## AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Adjusted AAPL.Volume
## 2012-07-02 20.88321 21.19536 20.84286 21.16143 18.19678 400092000
## 2012-07-03 21.24571 21.42857 21.21429 21.40750 18.40837 241712800
## 2012-07-05 21.44857 21.94071 21.41607 21.78357 18.73176 484383200
## 2021-07-30 144.38001 146.33000 144.11000 145.86000 145.86000 70382000
## AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Adjusted AMZN.Volume
## 2012-07-02 229.30 229.34 226.34 229.32 229.32 2330700
## 2012-07-03 229.14 229.53 227.59 229.53 229.53 1331700
## 2012-07-05 228.62 230.50 226.53 227.06 227.06 2682300
## 2021-07-30 3347.95 3368.14 3306.98 3327.59 3327.59 9957100
Plotting the data for each security to check for missing data
## Index JPM.Open JPM.High JPM.Low
## Min. :2012-07-02 Min. : 33.24 Min. : 34.12 Min. : 33.10
## 1st Qu.:2014-10-09 1st Qu.: 58.54 1st Qu.: 59.09 1st Qu.: 58.06
## Median :2017-01-17 Median : 84.93 Median : 85.73 Median : 83.82
## Mean :2017-01-15 Mean : 84.75 Mean : 85.53 Mean : 83.99
## 3rd Qu.:2019-04-25 3rd Qu.:108.66 3rd Qu.:109.83 3rd Qu.:107.49
## Max. :2021-07-30 Max. :167.26 Max. :167.44 Max. :165.53
## JPM.Close JPM.Adjusted JPM.Volume
## Min. : 33.90 Min. : 26.46 Min. : 3324300
## 1st Qu.: 58.57 1st Qu.: 48.79 1st Qu.:11725700
## Median : 84.70 Median : 74.98 Median :14658500
## Mean : 84.77 Mean : 76.51 Mean :16666193
## 3rd Qu.:108.50 3rd Qu.:100.03 3rd Qu.:19471700
## Max. :166.44 Max. :165.49 Max. :83001000
## Index GS.Open GS.High GS.Low
## Min. :2012-07-02 Min. : 91.94 Min. : 93.42 Min. : 91.15
## 1st Qu.:2014-10-09 1st Qu.:164.93 1st Qu.:166.40 1st Qu.:163.34
## Median :2017-01-17 Median :195.48 Median :197.59 Median :193.97
## Mean :2017-01-15 Mean :200.71 Mean :202.71 Mean :198.75
## 3rd Qu.:2019-04-25 3rd Qu.:227.20 3rd Qu.:229.00 3rd Qu.:225.24
## Max. :2021-07-30 Max. :393.00 Max. :393.26 Max. :387.55
## GS.Close GS.Adjusted GS.Volume
## Min. : 93.16 Min. : 80.91 Min. : 467700
## 1st Qu.:165.04 1st Qu.:148.42 1st Qu.: 2294600
## Median :195.68 Median :183.07 Median : 2931500
## Mean :200.76 Mean :187.63 Mean : 3263362
## 3rd Qu.:226.97 3rd Qu.:213.89 3rd Qu.: 3760300
## Max. :391.45 Max. :391.45 Max. :20410100
## Index AES.Open AES.High AES.Low
## Min. :2012-07-02 Min. : 8.60 Min. : 8.65 Min. : 8.11
## 1st Qu.:2014-10-09 1st Qu.:11.42 1st Qu.:11.58 1st Qu.:11.31
## Median :2017-01-17 Median :13.10 Median :13.26 Median :12.96
## Mean :2017-01-15 Mean :14.26 Mean :14.43 Mean :14.09
## 3rd Qu.:2019-04-25 3rd Qu.:15.24 3rd Qu.:15.41 3rd Qu.:15.10
## Max. :2021-07-30 Max. :28.80 Max. :29.07 Max. :28.53
## AES.Close AES.Adjusted AES.Volume
## Min. : 8.54 Min. : 6.936 Min. : 986200
## 1st Qu.:11.43 1st Qu.: 9.644 1st Qu.: 3995400
## Median :13.11 Median :10.660 Median : 5228200
## Mean :14.26 Mean :12.475 Mean : 5747263
## 3rd Qu.:15.28 3rd Qu.:14.137 3rd Qu.: 6803000
## Max. :28.91 Max. :28.575 Max. :46067600
## Index DTE.Open DTE.High DTE.Low
## Min. :2012-07-02 Min. : 49.64 Min. : 49.86 Min. : 49.41
## 1st Qu.:2014-10-09 1st Qu.: 65.49 1st Qu.: 66.01 1st Qu.: 64.97
## Median :2017-01-17 Median : 83.29 Median : 83.84 Median : 82.63
## Mean :2017-01-15 Mean : 82.11 Mean : 82.75 Mean : 81.44
## 3rd Qu.:2019-04-25 3rd Qu.: 97.21 3rd Qu.: 98.34 3rd Qu.: 96.41
## Max. :2021-07-30 Max. :122.85 Max. :123.77 Max. :121.20
## DTE.Close DTE.Adjusted DTE.Volume
## Min. : 49.70 Min. : 36.28 Min. : 213850
## 1st Qu.: 65.51 1st Qu.: 52.17 1st Qu.: 878665
## Median : 83.37 Median : 71.87 Median :1120128
## Mean : 82.13 Mean : 72.06 Mean :1249168
## 3rd Qu.: 97.33 3rd Qu.: 90.23 3rd Qu.:1467458
## Max. :122.68 Max. :121.69 Max. :6169690
## Index AAPL.Open AAPL.High AAPL.Low
## Min. :2012-07-02 Min. : 13.86 Min. : 14.27 Min. : 13.75
## 1st Qu.:2014-10-09 1st Qu.: 24.20 1st Qu.: 24.42 1st Qu.: 23.95
## Median :2017-01-17 Median : 32.57 Median : 32.85 Median : 32.34
## Mean :2017-01-15 Mean : 45.73 Mean : 46.21 Mean : 45.25
## 3rd Qu.:2019-04-25 3rd Qu.: 51.47 3rd Qu.: 51.94 3rd Qu.: 50.97
## Max. :2021-07-30 Max. :149.24 Max. :150.00 Max. :147.70
## AAPL.Close AAPL.Adjusted AAPL.Volume
## Min. : 13.95 Min. : 12.17 Min. :4.545e+07
## 1st Qu.: 24.19 1st Qu.: 22.23 1st Qu.:1.043e+08
## Median : 32.57 Median : 29.82 Median :1.500e+08
## Mean : 45.75 Mean : 44.10 Mean :2.031e+08
## 3rd Qu.: 51.62 3rd Qu.: 50.34 3rd Qu.:2.481e+08
## Max. :149.15 Max. :149.15 Max. :1.461e+09
## Index AMZN.Open AMZN.High AMZN.Low
## Min. :2012-07-02 Min. : 215.6 Min. : 217.3 Min. : 212.6
## 1st Qu.:2014-10-09 1st Qu.: 359.1 1st Qu.: 362.9 1st Qu.: 356.1
## Median :2017-01-17 Median : 829.0 Median : 833.5 Median : 822.2
## Mean :2017-01-15 Mean :1203.4 Mean :1215.8 Mean :1189.4
## 3rd Qu.:2019-04-25 3rd Qu.:1796.0 3rd Qu.:1809.0 3rd Qu.:1777.4
## Max. :2021-07-30 Max. :3744.0 Max. :3773.1 Max. :3696.8
## AMZN.Close AMZN.Adjusted AMZN.Volume
## Min. : 215.4 Min. : 215.4 Min. : 881300
## 1st Qu.: 359.8 1st Qu.: 359.8 1st Qu.: 2676600
## Median : 829.0 Median : 829.0 Median : 3463000
## Mean :1203.0 Mean :1203.0 Mean : 4039804
## 3rd Qu.:1794.2 3rd Qu.:1794.2 3rd Qu.: 4705200
## Max. :3731.4 Max. :3731.4 Max. :23856100
Plot candlestick charts for each stocks using weekly data
## wk.JPM.Open wk.JPM.High wk.JPM.Low wk.JPM.Close wk.JPM.Volume
## 2012-07-06 36.27 36.36 33.73 33.90 151557800
## 2012-07-13 33.81 36.20 33.54 36.07 221167300
## 2012-07-20 35.76 35.85 33.90 33.90 195997400
## 2021-07-30 150.19 153.87 149.80 151.78 47512100
## wk.JPM.Adjusted
## 2012-07-06 32057200
## 2012-07-13 83001000
## 2012-07-20 36301200
## 2021-07-30 9804600
## OHLC.Open OHLC.High OHLC.Low OHLC.Close OHLC.Volume
## 2012-07-13 33.81 36.20 33.54 36.07 221167300
## 2012-07-20 35.76 35.85 33.90 33.90 195997400
## 2012-07-27 33.24 37.20 33.10 36.89 195833100
## 2021-07-30 150.19 153.87 149.80 151.78 47512100
## wk.GS.Open wk.GS.High wk.GS.Low wk.GS.Close wk.GS.Volume
## 2012-07-06 96.56 98.77 94.50 95.47 12816700
## 2012-07-13 94.84 97.86 93.15 97.43 20085700
## 2012-07-20 97.73 100.49 94.10 94.16 30156400
## 2021-07-30 373.18 379.95 369.22 374.88 7791300
## wk.GS.Adjusted
## 2012-07-06 3312800
## 2012-07-13 4592400
## 2012-07-20 5543900
## 2021-07-30 1474900
## OHLC.Open OHLC.High OHLC.Low OHLC.Close OHLC.Volume
## 2012-07-13 94.84 97.86 93.15 97.43 20085700
## 2012-07-20 97.73 100.49 94.10 94.16 30156400
## 2012-07-27 91.94 102.05 91.15 101.64 26116400
## 2021-07-30 373.18 379.95 369.22 374.88 7791300
## wk.AES.Open wk.AES.High wk.AES.Low wk.AES.Close wk.AES.Volume
## 2012-07-06 12.94 12.94 12.64 12.84 16029300
## 2012-07-13 12.84 12.85 12.54 12.72 19780400
## 2012-07-20 12.69 12.90 12.56 12.77 25941900
## 2021-07-30 23.91 24.49 23.65 23.70 21913900
## wk.AES.Adjusted
## 2012-07-06 4471200
## 2012-07-13 2963500
## 2012-07-20 4019700
## 2021-07-30 5208900
## OHLC.Open OHLC.High OHLC.Low OHLC.Close OHLC.Volume
## 2012-07-13 12.84 12.85 12.54 12.72 19780400
## 2012-07-20 12.69 12.90 12.56 12.77 25941900
## 2012-07-27 12.64 12.71 11.65 11.98 42110700
## 2021-07-30 23.91 24.49 23.65 23.70 21913900
## wk.DTE.Open wk.DTE.High wk.DTE.Low wk.DTE.Close wk.DTE.Volume
## 2012-07-06 50.02553 51.03830 50.02553 50.41702 3492101
## 2012-07-13 50.36595 51.22553 49.87234 51.05532 3609249
## 2012-07-20 51.05532 52.12766 50.92766 51.94043 4167726
## 2021-07-30 116.10000 119.27000 114.75000 117.32000 5555000
## wk.DTE.Adjusted
## 2012-07-06 636850
## 2012-07-13 845648
## 2012-07-20 826613
## 2021-07-30 643000
## OHLC.Open OHLC.High OHLC.Low OHLC.Close OHLC.Volume
## 2012-07-13 50.36595 51.22553 49.87234 51.05532 3609249
## 2012-07-20 51.05532 52.12766 50.92766 51.94043 4167726
## 2012-07-27 51.10638 52.83404 50.27234 52.04255 5356004
## 2021-07-30 116.10000 119.27000 114.75000 117.32000 5555000
## wk.AMZN.Open wk.AMZN.High wk.AMZN.Low wk.AMZN.Close wk.AMZN.Volume
## 2012-07-06 229.30 230.50 224.18 225.05 9547900
## 2012-07-13 225.00 227.14 212.61 218.39 12476900
## 2012-07-20 216.60 229.39 213.96 228.29 15703600
## 2021-07-30 3673.17 3712.08 3306.98 3327.59 25508500
## wk.AMZN.Adjusted
## 2012-07-06 3203200
## 2012-07-13 2221900
## 2012-07-20 4170000
## 2021-07-30 9957100
## OHLC.Open OHLC.High OHLC.Low OHLC.Close OHLC.Volume
## 2012-07-13 225.00 227.14 212.61 218.39 12476900
## 2012-07-20 216.60 229.39 213.96 228.29 15703600
## 2012-07-27 224.72 238.34 214.95 237.32 32421800
## 2021-07-30 3673.17 3712.08 3306.98 3327.59 25508500
## wk.AAPL.Open wk.AAPL.High wk.AAPL.Low wk.AAPL.Close wk.AAPL.Volume
## 2012-07-06 20.88321 21.94071 20.84286 21.63857 1545118400
## 2012-07-13 21.61786 22.13821 21.16714 21.60607 2100154000
## 2012-07-20 21.61143 21.97679 21.54107 21.58214 1681918000
## 2021-07-30 148.27000 149.83000 142.53999 145.86000 423265400
## wk.AAPL.Adjusted
## 2012-07-06 418930400
## 2012-07-13 311427200
## 2012-07-20 397471200
## 2021-07-30 70382000
## OHLC.Open OHLC.High OHLC.Low OHLC.Close OHLC.Volume
## 2012-07-13 21.61786 22.13821 21.16714 21.60607 2100154000
## 2012-07-20 21.61143 21.97679 21.54107 21.58214 1681918000
## 2012-07-27 21.22857 21.77429 20.35714 20.89857 2740990000
## 2021-07-30 148.27000 149.83000 142.53999 145.86000 423265400
Checking the gains during the pandemic from July 2019 to July 2021 for each sector
Value of $1 Investment in Financial, Utility and Tech sector
## JPM.Close GS.Close AES.Close DTE.Close AAPL.Close AMZN.Close
## 2019-07-01 113.68 206.86 16.77 109.1745 50.3875 1922.19
## 2019-07-02 113.80 205.98 16.95 110.5021 50.6825 1934.31
## 2019-07-03 112.82 206.04 17.28 111.5660 51.1025 1939.00
## 2021-07-30 151.78 374.88 23.70 117.3200 145.8600 3327.59
## [1] 7
## date JPM GS AES DTE AAPL AMZN
## 1 2019-07-01 113.68 206.86 16.77 109.1745 50.3875 1922.19
## 2 2019-07-02 113.80 205.98 16.95 110.5021 50.6825 1934.31
## 3 2019-07-03 112.82 206.04 17.28 111.5660 51.1025 1939.00
## 526 2021-07-30 151.78 374.88 23.70 117.3200 145.8600 3327.59
## [1] 1.0000000 0.9976290 0.9947588 1.0026517 0.9940101 1.0018094
## [1] 1.000000 1.011971 1.023038 1.020281 1.021600 1.022170
## [1] 1.000000 1.006294 1.008884 1.010844 1.015081 1.033475
Calculating moving average for each sector
## JPM.Close sma50 sma200
## 2019-07-01 320.54 307.91 306.81
## 2019-07-02 319.78 307.94 306.70
## 2019-07-03 318.86 307.96 306.58
## 2021-07-30 526.66 528.20 449.39
## AES.Close sma50 sma200
## 2019-07-01 125.94 124.67 117.63
## 2019-07-02 127.45 124.77 117.71
## 2019-07-03 128.85 124.90 117.81
## 2021-07-30 141.02 140.84 135.05
## AMZN.Close sma50 sma200
## 2019-07-01 1972.6 1919.1 1792.4
## 2019-07-02 1985.0 1920.1 1792.1
## 2019-07-03 1990.1 1920.4 1792.0
## 2021-07-30 3473.5 3589.8 3397.4
Bollinger BandsPlot for Pandemic Period
## JPM.Close GS.Close DTE.Close AES.Close AAPL.Close AMZN.Close all
## 2019-07-01 113.68 206.86 109.17 16.77 50.388 1922.2 2419.1
## 2019-07-02 113.80 205.98 110.50 16.95 50.682 1934.3 2432.2
## 2019-07-03 112.82 206.04 111.57 17.28 51.103 1939.0 2437.8
## 2021-07-30 151.78 374.88 117.32 23.70 145.860 3327.6 4141.1
## JPM.Close GS.Close DTE.Close AES.Close AAPL.Close AMZN.Close all
## 2019-07-01 113.68 206.86 109.17 16.77 50.388 1922.2 2419.1
## 2019-07-02 113.80 205.98 110.50 16.95 50.682 1934.3 2432.2
## 2019-07-03 112.82 206.04 111.57 17.28 51.103 1939.0 2437.8
## 2021-07-30 151.78 374.88 117.32 23.70 145.860 3327.6 4141.1
## avg sd
## 2019-07-01 NA NA
## 2019-07-02 NA NA
## 2019-07-03 NA NA
## 2021-07-30 4435.2 94.948
## JPM.Close GS.Close DTE.Close AES.Close AAPL.Close AMZN.Close all
## 2019-07-01 113.68 206.86 109.17 16.77 50.388 1922.2 2419.1
## 2019-07-02 113.80 205.98 110.50 16.95 50.682 1934.3 2432.2
## 2019-07-03 112.82 206.04 111.57 17.28 51.103 1939.0 2437.8
## 2021-07-30 151.78 374.88 117.32 23.70 145.860 3327.6 4141.1
## avg sd sd2up sd2down
## 2019-07-01 NA NA NA NA
## 2019-07-02 NA NA NA NA
## 2019-07-03 NA NA NA NA
## 2021-07-30 4435.2 94.948 4625.1 4245.3
Total Portfolio return during the pandemic
## JPM.Close GS.Close AES.Close DTE.Close AAPL.Close AMZN.Close
## 2019-07-01 113.68 206.86 16.77 109.17 50.388 1922.2
## 2019-07-02 113.80 205.98 16.95 110.50 50.682 1934.3
## 2019-07-03 112.82 206.04 17.28 111.57 51.103 1939.0
## 2019-07-05 113.49 207.90 17.12 111.38 51.057 1942.9
## 2021-07-30 151.78 374.88 23.70 117.32 145.860 3327.6
## JPM.Price.Ret GS.Price.Ret DTE.Price.Ret AES.Price.Ret
## 2019-07-01 NA NA NA NA
## 2019-07-02 0.0010556 -0.00425411 0.0121609 0.0107335
## 2019-07-03 -0.0086116 0.00029128 0.0096272 0.0194690
## 2019-07-05 0.0059386 0.00902738 -0.0016782 -0.0092593
## 2021-07-30 -0.0079739 -0.00707187 -0.0068568 -0.0234857
## AAPL.Price.Ret AMZN.Price.Ret
## 2019-07-01 NA NA
## 2019-07-02 0.00585459 0.0063054
## 2019-07-03 0.00828692 0.0024246
## 2019-07-05 -0.00088062 0.0020165
## 2021-07-30 0.00151059 -0.0756489
## [1] 0.71187
Gross Portfolio returns during the Pandemic(Logarithmic)
## JPM.Close JPM.Adjusted GS.Close GS.Adjusted AES.Close AES.Adjusted
## 2019-07-01 113.68 106.05 206.86 198.16 16.77 15.667
## 2019-07-02 113.80 106.16 205.98 197.32 16.95 15.835
## 2019-07-03 112.82 105.99 206.04 197.37 17.28 16.143
## 2019-07-05 113.49 106.62 207.90 199.16 17.12 15.994
## 2019-07-08 112.87 106.04 205.75 197.10 17.15 16.022
## DTE.Close DTE.Adjusted AMZN.Close AMZN.Adjusted AAPL.Close
## 2019-07-01 109.17 101.73 1922.2 1922.2 50.388
## 2019-07-02 110.50 102.97 1934.3 1934.3 50.682
## 2019-07-03 111.57 103.96 1939.0 1939.0 51.103
## 2019-07-05 111.38 103.78 1942.9 1942.9 51.057
## 2019-07-08 111.51 103.91 1952.3 1952.3 50.005
## AAPL.Adjusted JPM.Ret AES.Ret DTE.Ret GS.Ret
## 2019-07-01 49.460 NA NA NA NA
## 2019-07-02 49.750 0.0010556 0.0107334 0.0121610 -0.00425424
## 2019-07-03 50.162 -0.0015930 0.0194689 0.0096271 0.00029131
## 2019-07-05 50.118 0.0059389 -0.0092592 -0.0016782 0.00902737
## 2019-07-08 49.085 -0.0054631 0.0017523 0.0012227 -0.01034151
## AAPL.Ret AMZN.Ret Port.Tot.Ret Port.Log.Tot.Ret
## 2019-07-01 NA NA NA NA
## 2019-07-02 0.00585471 0.0063054 0.0054670 0.0054521
## 2019-07-03 0.00828697 0.0024246 0.0026140 0.0026106
## 2019-07-05 -0.00088071 0.0020165 0.0024675 0.0024645
## 2019-07-08 -0.02061402 0.0048432 0.0024352 0.0024322
Plot a comparison of Total Price returns and Total Gross returns
Creating a equally weighted portfolio by dividing the data into 4 halves (July 2019 - December 2019 January 2020 - June 2020 July 2020 - December 2020 January 2021 - June 2021)
## JPM.Adjusted GS.Adjusted AES.Adjusted DTE.Adjusted AMZN.Adjusted
## 2019-07-02 106.16 197.32 15.835 102.97 1934.3
## 2019-07-03 105.99 197.37 16.143 103.96 1939.0
## 2019-07-05 106.62 199.16 15.994 103.78 1942.9
## 2019-07-08 106.04 197.10 16.022 103.91 1952.3
## 2019-12-31 132.01 222.89 18.891 104.60 1847.8
## AAPL.Adjusted JPM.Ret GS.Ret AES.Ret DTE.Ret
## 2019-07-02 49.750 0.0010556 -0.00425424 0.0107334 0.0121610
## 2019-07-03 50.162 -0.0015930 0.00029131 0.0194689 0.0096271
## 2019-07-05 50.118 0.0059389 0.00902737 -0.0092592 -0.0016782
## 2019-07-08 49.085 -0.0054631 -0.01034151 0.0017523 0.0012227
## 2019-12-31 72.552 0.0055541 0.00056565 -0.0069861 0.0065882
## AAPL.Ret AMZN.Ret
## 2019-07-02 0.00585471 0.00630537
## 2019-07-03 0.00828697 0.00242461
## 2019-07-05 -0.00088071 0.00201652
## 2019-07-08 -0.02061402 0.00484321
## 2019-12-31 0.00730656 0.00051435
## JPM.Adjusted GS.Adjusted AES.Adjusted DTE.Adjusted AMZN.Adjusted
## 2020-01-02 133.611 227.15 19.015 103.655 1898.0
## 2020-01-03 131.848 224.49 18.796 103.905 1875.0
## 2020-01-06 131.743 226.79 19.015 103.881 1902.9
## 2020-01-07 129.503 228.28 19.081 103.534 1906.9
## 2020-06-30 90.577 193.95 13.993 88.406 2758.8
## AAPL.Adjusted JPM.Ret GS.Ret AES.Ret DTE.Ret
## 2020-01-02 74.207 0.01212353 0.0190929 0.0065327 -0.00900897
## 2020-01-03 73.486 -0.01319651 -0.0116935 -0.0114828 0.00240868
## 2020-01-06 74.072 -0.00079507 0.0102341 0.0116162 -0.00023262
## 2020-01-07 73.723 -0.01700065 0.0065825 0.0034947 -0.00333377
## 2020-06-30 90.590 0.01139767 0.0214502 0.0104602 0.00882133
## AAPL.Ret AMZN.Ret
## 2020-01-02 0.0228163 0.0271506
## 2020-01-03 -0.0097220 -0.0121391
## 2020-01-06 0.0079683 0.0148856
## 2020-01-07 -0.0047031 0.0020916
## 2020-06-30 0.0083476 0.0292646
## JPM.Adjusted GS.Adjusted AES.Adjusted DTE.Adjusted AMZN.Adjusted
## 2020-07-01 89.807 193.90 13.915 90.462 2878.7
## 2020-07-02 90.099 193.73 13.983 90.437 2890.3
## 2020-07-06 92.374 203.51 13.973 89.171 3057.0
## 2020-07-07 89.768 195.65 13.655 88.069 3000.1
## 2020-12-31 124.704 261.79 23.075 101.611 3256.9
## AAPL.Adjusted JPM.Ret GS.Ret AES.Ret DTE.Ret
## 2020-07-01 90.418 -0.0085052 -0.00025286 -0.00552099 0.02325569
## 2020-07-02 90.418 0.0032482 -0.00086053 0.00485773 -0.00027258
## 2020-07-06 92.837 0.0252537 0.05045594 -0.00069056 -0.01400385
## 2020-07-07 92.549 -0.0282105 -0.03858024 -0.02280587 -0.01235825
## 2020-12-31 132.267 0.0136408 0.01641929 0.03160671 0.01462484
## AAPL.Ret AMZN.Ret
## 2020-07-01 -0.0018915 0.0434533
## 2020-07-02 0.0000000 0.0040296
## 2020-07-06 0.0267502 0.0576895
## 2020-07-07 -0.0031030 -0.0186193
## 2020-12-31 -0.0077027 -0.0088014
## JPM.Adjusted GS.Adjusted AES.Adjusted DTE.Adjusted AMZN.Adjusted
## 2021-01-04 123.53 263.07 22.820 99.920 3186.6
## 2021-01-05 124.20 268.96 23.586 100.079 3218.5
## 2021-01-06 130.03 283.48 24.528 101.870 3138.4
## 2021-01-07 134.30 289.53 24.283 99.393 3162.2
## 2021-06-30 154.65 379.53 25.908 110.298 3440.2
## AAPL.Adjusted JPM.Ret GS.Ret AES.Ret DTE.Ret AAPL.Ret
## 2021-01-04 129.00 -0.0094437 0.0048918 -0.011064 -0.01663780 -0.0247192
## 2021-01-05 130.59 0.0054413 0.0223773 0.033563 0.00159138 0.0123637
## 2021-01-06 126.20 0.0469558 0.0539622 0.039967 0.01789596 -0.0336615
## 2021-01-07 130.50 0.0328392 0.0213623 -0.010008 -0.02431804 0.0341233
## 2021-06-30 136.96 0.0090826 0.0185444 -0.011377 0.00084951 0.0046212
## AMZN.Ret
## 2021-01-04 -0.0215848
## 2021-01-05 0.0100043
## 2021-01-06 -0.0248967
## 2021-01-07 0.0075772
## 2021-06-30 -0.0023143
## JPM.Adjusted GS.Adjusted AES.Adjusted DTE.Adjusted AMZN.Adjusted
## 2019-07-02 106.16 197.32 15.835 102.97 1934.3
## 2019-07-03 105.99 197.37 16.143 103.96 1939.0
## 2019-07-05 106.62 199.16 15.994 103.78 1942.9
## 2019-07-08 106.04 197.10 16.022 103.91 1952.3
## 2019-07-09 106.49 199.03 15.938 104.06 1988.3
## 2019-07-10 106.18 197.31 15.872 104.33 2017.4
## AAPL.Adjusted JPM.Ret GS.Ret AES.Ret DTE.Ret
## 2019-07-02 49.750 0.0010556 -0.00425424 0.0107334 0.0121610
## 2019-07-03 50.162 -0.0015930 0.00029131 0.0194689 0.0096271
## 2019-07-05 50.118 0.0059389 0.00902737 -0.0092592 -0.0016782
## 2019-07-08 49.085 -0.0054631 -0.01034151 0.0017523 0.0012227
## 2019-07-09 49.384 0.0042526 0.00981784 -0.0052478 0.0014501
## 2019-07-10 49.872 -0.0029114 -0.00866348 -0.0041033 0.0025911
## AAPL.Ret AMZN.Ret JPM GS DTE AES AAPL AMZN
## 2019-07-02 0.00585471 0.0063054 1.00106 0.99575 1.0122 1.0107 1.00585 1.0063
## 2019-07-03 0.00828697 0.0024246 0.99946 0.99604 1.0219 1.0304 1.01419 1.0087
## 2019-07-05 -0.00088071 0.0020165 1.00540 1.00503 1.0202 1.0209 1.01330 1.0108
## 2019-07-08 -0.02061402 0.0048432 0.99990 0.99463 1.0214 1.0227 0.99241 1.0157
## 2019-07-09 0.00609952 0.0184294 1.00416 1.00440 1.0229 1.0173 0.99846 1.0344
## 2019-07-10 0.00988855 0.0146406 1.00123 0.99570 1.0256 1.0131 1.00834 1.0495
## EWPort EWRet portvalue
## 2019-07-02 1.0053 0.00530930 1.0053
## 2019-07-03 1.0118 0.00644791 1.0118
## 2019-07-05 1.0126 0.00079274 1.0126
## 2019-07-08 1.0078 -0.00474731 1.0078
## 2019-07-09 1.0136 0.00577229 1.0136
## 2019-07-10 1.0156 0.00195157 1.0156
Value Weighted Portfolio
## date JPM.Close JPM.Adjusted GS.Close GS.Adjusted AES.Close
## 1 2019-07-02 113.80 106.16 205.98 197.32 16.95
## 2 2019-07-03 112.82 105.99 206.04 197.37 17.28
## 3 2019-07-05 113.49 106.62 207.90 199.16 17.12
## 525 2021-07-30 151.78 151.78 374.88 374.88 23.70
## AES.Adjusted DTE.Close DTE.Adjusted AMZN.Close AMZN.Adjusted AAPL.Close
## 1 15.835 110.50 102.97 1934.3 1934.3 50.682
## 2 16.143 111.57 103.96 1939.0 1939.0 51.103
## 3 15.994 111.38 103.78 1942.9 1942.9 51.057
## 525 23.700 117.32 117.32 3327.6 3327.6 145.860
## AAPL.Adjusted JPM.Ret AES.Ret DTE.Ret GS.Ret AAPL.Ret AMZN.Ret
## 1 49.750 1.00106 1.01073 1.01216 0.99575 1.00585 1.00631
## 2 50.162 0.99841 1.01947 1.00963 1.00029 1.00829 1.00242
## 3 50.118 1.00594 0.99074 0.99832 1.00903 0.99912 1.00202
## 525 145.860 0.99203 0.98263 0.99314 0.99293 1.00151 0.92435
## Port.Tot.Ret Port.Log.Tot.Ret TotalV
## 1 0.0054670 0.0054521 1.0055
## 2 0.0026140 0.0026106 1.0081
## 3 0.0024675 0.0024645 1.0106
## 525 -0.0627447 -0.0647996 1.7303
## [1] "2019-07-01" "2019-07-02" "2019-07-03" "2021-07-01"
## date JPM.Close JPM.Adjusted GS.Close GS.Adjusted AES.Close
## 1 2019-07-02 113.80 106.16 205.98 197.32 16.95
## 2 2019-07-03 112.82 105.99 206.04 197.37 17.28
## 3 2019-07-05 113.49 106.62 207.90 199.16 17.12
## 525 2021-07-30 151.78 151.78 374.88 374.88 23.70
## AES.Adjusted DTE.Close DTE.Adjusted AMZN.Close AMZN.Adjusted AAPL.Close
## 1 15.835 110.50 102.97 1934.3 1934.3 50.682
## 2 16.143 111.57 103.96 1939.0 1939.0 51.103
## 3 15.994 111.38 103.78 1942.9 1942.9 51.057
## 525 23.700 117.32 117.32 3327.6 3327.6 145.860
## AAPL.Adjusted JPM.Ret AES.Ret DTE.Ret GS.Ret AAPL.Ret AMZN.Ret
## 1 49.750 1.00106 1.01073 1.01216 0.99575 1.00585 1.00631
## 2 50.162 0.99841 1.01947 1.00963 1.00029 1.00829 1.00242
## 3 50.118 1.00594 0.99074 0.99832 1.00903 0.99912 1.00202
## 525 145.860 0.99203 0.98263 0.99314 0.99293 1.00151 0.92435
## Port.Tot.Ret Port.Log.Tot.Ret TotalV
## 1 0.0054670 0.0054521 1.0055
## 2 0.0026140 0.0026106 1.0081
## 3 0.0024675 0.0024645 1.0106
## 525 -0.0627447 -0.0647996 1.7303
## date JPM.Close JPM.Adjusted GS.Close GS.Adjusted AES.Close
## 127 2019-12-31 139.40 132.011 229.93 222.89 19.90
## 252 2020-06-30 94.06 90.577 197.62 193.95 14.49
## 380 2020-12-31 127.07 124.704 263.71 261.79 23.50
## 504 2021-06-30 155.54 154.649 379.53 379.53 26.07
## AES.Adjusted DTE.Close DTE.Adjusted AMZN.Close AMZN.Adjusted AAPL.Close
## 127 18.891 110.528 104.597 1847.8 1847.8 73.412
## 252 13.993 91.489 88.406 2758.8 2758.8 91.200
## 380 23.075 103.328 101.611 3256.9 3256.9 132.690
## 504 25.908 110.298 110.298 3440.2 3440.2 136.960
## AAPL.Adjusted JPM.Ret AES.Ret DTE.Ret GS.Ret AAPL.Ret AMZN.Ret Port.Tot.Ret
## 127 72.552 1.0056 0.99301 1.0066 1.0006 1.0073 1.00051 0.00120333
## 252 90.590 1.0114 1.01046 1.0088 1.0215 1.0083 1.02926 0.02703842
## 380 132.267 1.0136 1.03161 1.0146 1.0164 0.9923 0.99120 -0.00557539
## 504 136.960 1.0091 0.98862 1.0008 1.0185 1.0046 0.99769 0.00017601
## Port.Log.Tot.Ret TotalV
## 127 0.0012026 1.0023
## 252 0.0266793 1.3523
## 380 -0.0055910 1.6297
## 504 0.0001760 1.7748
## 'data.frame': 4 obs. of 28 variables:
## $ date : Date, format: "2019-12-31" "2020-06-30" ...
## $ JPM.Close : num 139.4 94.1 127.1 155.5
## $ JPM.Adjusted : num 132 90.6 124.7 154.6
## $ GS.Close : num 230 198 264 380
## $ GS.Adjusted : num 223 194 262 380
## $ AES.Close : num 19.9 14.5 23.5 26.1
## $ AES.Adjusted : num 18.9 14 23.1 25.9
## $ DTE.Close : num 110.5 91.5 103.3 110.3
## $ DTE.Adjusted : num 104.6 88.4 101.6 110.3
## $ AMZN.Close : num 1848 2759 3257 3440
## $ AMZN.Adjusted : num 1848 2759 3257 3440
## $ AAPL.Close : num 73.4 91.2 132.7 137
## $ AAPL.Adjusted : num 72.6 90.6 132.3 137
## $ JPM.Ret : num 1.01 1.01 1.01 1.01
## $ AES.Ret : num 0.993 1.01 1.032 0.989
## $ DTE.Ret : num 1.01 1.01 1.01 1
## $ GS.Ret : num 1 1.02 1.02 1.02
## $ AAPL.Ret : num 1.007 1.008 0.992 1.005
## $ AMZN.Ret : num 1.001 1.029 0.991 0.998
## $ Port.Tot.Ret : num 0.001203 0.027038 -0.005575 0.000176
## $ Port.Log.Tot.Ret: num 0.001203 0.026679 -0.005591 0.000176
## $ TotalV : num 1 1.35 1.63 1.77
## $ JPM.shout : num 2.99e+09 3.05e+09 3.05e+09 3.08e+09
## $ GS.shout : num 3.37e+08 3.44e+08 3.44e+08 3.47e+08
## $ DTE.shout : num 1.94e+08 1.94e+08 1.93e+08 1.92e+08
## $ AES.shout : num 6.66e+08 6.65e+08 6.65e+08 6.64e+08
## $ AMZN.shout : num 5.06e+08 5.03e+08 5.01e+08 4.98e+08
## $ AAPL.shout : num 1.66e+10 1.68e+10 1.71e+10 1.75e+10
## date JPM.Close JPM.Adjusted GS.Close GS.Adjusted AES.Close
## 127 2019-12-31 139.40 132.011 229.93 222.89 19.90
## 252 2020-06-30 94.06 90.577 197.62 193.95 14.49
## 380 2020-12-31 127.07 124.704 263.71 261.79 23.50
## 504 2021-06-30 155.54 154.649 379.53 379.53 26.07
## AES.Adjusted DTE.Close DTE.Adjusted AMZN.Close AMZN.Adjusted AAPL.Close
## 127 18.891 110.528 104.597 1847.8 1847.8 73.412
## 252 13.993 91.489 88.406 2758.8 2758.8 91.200
## 380 23.075 103.328 101.611 3256.9 3256.9 132.690
## 504 25.908 110.298 110.298 3440.2 3440.2 136.960
## AAPL.Adjusted JPM.Ret AES.Ret DTE.Ret GS.Ret AAPL.Ret AMZN.Ret Port.Tot.Ret
## 127 72.552 1.0056 0.99301 1.0066 1.0006 1.0073 1.00051 0.00120333
## 252 90.590 1.0114 1.01046 1.0088 1.0215 1.0083 1.02926 0.02703842
## 380 132.267 1.0136 1.03161 1.0146 1.0164 0.9923 0.99120 -0.00557539
## 504 136.960 1.0091 0.98862 1.0008 1.0185 1.0046 0.99769 0.00017601
## Port.Log.Tot.Ret TotalV JPM.shout GS.shout DTE.shout AES.shout AMZN.shout
## 127 0.0012026 1.0023 2.988e+09 337280000 193750000 666330000 5.06e+08
## 252 0.0266793 1.3523 3.049e+09 344090000 193770000 665370000 5.03e+08
## 380 -0.0055910 1.6297 3.048e+09 343940000 192650000 664940000 5.01e+08
## 504 0.0001760 1.7748 3.084e+09 347340000 192210000 664040000 4.98e+08
## AAPL.shout JPM.mcap DTE.mcap AES.mcap AMZN.mcap GS.mcap
## 127 1.656e+10 4.1653e+11 2.1415e+10 1.3260e+10 9.3501e+11 7.7551e+10
## 252 1.682e+10 2.8679e+11 1.7728e+10 9.6412e+09 1.3877e+12 6.7999e+10
## 380 1.714e+10 3.8731e+11 1.9906e+10 1.5626e+10 1.6317e+12 9.0700e+10
## 504 1.754e+10 4.7969e+11 2.1200e+10 1.7312e+10 1.7132e+12 1.3183e+11
## AAPL.mcap tot.mcap JPM.wgt GS.wgt AMZN.wgt AAPL.wgt
## 127 1.2157e+12 3841.6 108424186 20186872 243387179 316455872
## 252 1.5340e+12 5699.4 50318882 11930854 243478130 269146918
## 380 2.2743e+12 6778.8 57135242 13379976 240708938 335501985
## 504 2.4023e+12 7154.2 67049099 18426269 239466341 335783896
## date AES.Ret DTE.Ret GS.Ret AAPL.Ret
## 184 2019-12-31 0.99301 1.0066 1.0006 1.0073
## 185 2020-01-01 0.99301 1.0066 1.0006 1.0073
## 186 2020-01-02 0.99301 1.0066 1.0006 1.0073
## 732 2021-07-01 0.98862 1.0008 1.0185 1.0046
Constructing a variance - covariance matrix
## Delt.1.arithmetic
## 2019-07-01 NA
## 2019-07-02 0.0058547
## 2019-07-03 0.0082870
## 2021-07-30 0.0015106
## Delt.1.arithmetic
## 2019-07-01 NA
## 2019-07-02 0.0063054
## 2019-07-03 0.0024246
## 2021-07-30 -0.0756489
## Delt.1.arithmetic
## 2019-07-01 NA
## 2019-07-02 0.0121610
## 2019-07-03 0.0096271
## 2021-07-30 -0.0068568
## Delt.1.arithmetic
## 2019-07-01 NA
## 2019-07-02 0.010733
## 2019-07-03 0.019469
## 2021-07-30 -0.017372
## Delt.1.arithmetic
## 2019-07-01 NA
## 2019-07-02 0.0010556
## 2019-07-03 -0.0015930
## 2021-07-30 -0.0079739
## Delt.1.arithmetic
## 2019-07-01 NA
## 2019-07-02 -0.00425424
## 2019-07-03 0.00029131
## 2021-07-30 -0.00707187
## AAPL.Ret AMZN.Ret JPM.Ret GS.Ret AES.Ret DTE.Ret
## 2019-07-02 0.00585471 0.0063054 0.0010556 -0.00425424 0.0107334 0.0121610
## 2019-07-03 0.00828697 0.0024246 -0.0015930 0.00029131 0.0194689 0.0096271
## 2019-07-05 -0.00088071 0.0020165 0.0059389 0.00902737 -0.0092592 -0.0016782
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.2 0.15 0.05 0.15 0.25 0.2
## [,1]
## [1,] 0.20
## [2,] 0.15
## [3,] 0.05
## [4,] 0.15
## [5,] 0.25
## [6,] 0.20
## AAPL.Ret AMZN.Ret JPM.Ret GS.Ret AES.Ret DTE.Ret
## 2019-07-02 0.00585471 0.0063054 0.0010556 -0.00425424 0.0107334 0.0121610
## 2019-07-03 0.00828697 0.0024246 -0.0015930 0.00029131 0.0194689 0.0096271
## 2019-07-05 -0.00088071 0.0020165 0.0059389 0.00902737 -0.0092592 -0.0016782
## 2019-07-08 -0.02061402 0.0048432 -0.0054631 -0.01034151 0.0017523 0.0012227
## 2019-07-09 0.00609952 0.0184294 0.0042526 0.00981784 -0.0052478 0.0014501
## 2019-07-10 0.00988855 0.0146406 -0.0029114 -0.00866348 -0.0041033 0.0025911
## AAPL.Ret AMZN.Ret JPM.Ret GS.Ret AES.Ret DTE.Ret
## AAPL.Ret 0.00054407 0.00030735 0.00028334 0.00032021 0.00027041 0.00024709
## AMZN.Ret 0.00030735 0.00038820 0.00011764 0.00015787 0.00012968 0.00011096
## JPM.Ret 0.00028334 0.00011764 0.00065231 0.00056782 0.00046839 0.00039458
## GS.Ret 0.00032021 0.00015787 0.00056782 0.00064013 0.00044095 0.00036851
## AES.Ret 0.00027041 0.00012968 0.00046839 0.00044095 0.00080544 0.00045105
## DTE.Ret 0.00024709 0.00011096 0.00039458 0.00036851 0.00045105 0.00048587
## AAPL.Ret AMZN.Ret JPM.Ret GS.Ret AES.Ret DTE.Ret
## AAPL.Ret 0.27421 0.154906 0.142804 0.161384 0.136284 0.124534
## AMZN.Ret 0.15491 0.195655 0.059289 0.079566 0.065359 0.055926
## JPM.Ret 0.14280 0.059289 0.328763 0.286180 0.236068 0.198869
## GS.Ret 0.16138 0.079566 0.286180 0.322623 0.222239 0.185727
## AES.Ret 0.13628 0.065359 0.236068 0.222239 0.405941 0.227327
## DTE.Ret 0.12453 0.055926 0.198869 0.185727 0.227327 0.244880
Equally Weighted portfolio
Distribution Fitting
Obtaining the density functions and plot for EW Portfolio
QQ Plot for Portfolio
Best fit Model #Using the function “lik.ratio.test” to perform a likelihood-ratio test on fitted generalized hyperbolic distribution objects of class mle.ghyp. The likelihood-ratio test can be used to check whether a special case of the generalized hyperbolic distribution is the “true” underlying distribution. #statistic: the value of the L-statistic. #p.value: the p-value for the test (the p-value is less than 0.05, then there is evidence against the null hypothesis) #df: the degrees of freedom for the L-statistic #H0: a boolean stating whether the null hypothesis is TRUE or FALSE (if TRUE there is no relationship between the data sets)
The VaR based on the normal distribution can be computed by providing the necessary estimates for the location and scale. The VaR values thus determined are compared to their empirical counterparts, which are determined by the quantile() function.
Calculating and plotting the Expected Shortfall (using all models)
Predicting Future Volatility using Garch Model
#Calculating AdjClose for our Portfolio
EWPort.AdjClose<-(GS.Pandemic$Adj.Close+JPM.Pandemic$Adj.Close+AAPL.Pandemic$Adj.Close+AMZN.Pandemic$Adj.Close+DTE.Pandemic$Adj.Close+AES.Pandemic$Adj.Close)/6
EWPortReturn<-returnseries(EWPort.AdjClose)
date<-JPM$Date
GETS<-timeSeries(EWPortReturn, charvec = date)
GETS$Return <- GETS[-c(1)]
# Auto correlation and Partial Auto Correlation to calculate Lag period
acf(GETS$Return, na.action = na.pass)
pacf(GETS$Return, na.action = na.pass)
acf(abs(GETS$Return), na.action = na.pass)
pacf(abs(GETS$Return), na.action = na.pass)
mean(GETS$Return, na.rm = TRUE)
## [1] 0.10528
GETSComp <- removeNA(GETS)
garchFi<-garchFit(~garch(1,1), data=GETSComp)
##
## Series Initialization:
## ARMA Model: arma
## Formula Mean: ~ arma(0, 0)
## GARCH Model: garch
## Formula Variance: ~ garch(1, 1)
## ARMA Order: 0 0
## Max ARMA Order: 0
## GARCH Order: 1 1
## Max GARCH Order: 1
## Maximum Order: 1
## Conditional Dist: norm
## h.start: 2
## llh.start: 1
## Length of Series: 525
## Recursion Init: mci
## Series Scale: 1.8176
##
## Parameter Initialization:
## Initial Parameters: $params
## Limits of Transformations: $U, $V
## Which Parameters are Fixed? $includes
## Parameter Matrix:
## U V params includes
## mu -0.57460047 0.5746 0.05746 TRUE
## omega 0.00000100 100.0000 0.10000 TRUE
## alpha1 0.00000001 1.0000 0.10000 TRUE
## gamma1 -0.99999999 1.0000 0.10000 FALSE
## beta1 0.00000001 1.0000 0.80000 TRUE
## delta 0.00000000 2.0000 2.00000 FALSE
## skew 0.10000000 10.0000 1.00000 FALSE
## shape 1.00000000 10.0000 4.00000 FALSE
## Index List of Parameters to be Optimized:
## mu omega alpha1 beta1
## 1 2 3 5
## Persistence: 0.9
##
##
## --- START OF TRACE ---
## Selected Algorithm: nlminb
##
## R coded nlminb Solver:
##
## 0: 683.91399: 0.0574600 0.100000 0.100000 0.800000
## 1: 681.00425: 0.0574607 0.0784227 0.100794 0.788099
## 2: 678.64944: 0.0574618 0.0776613 0.123822 0.796874
## 3: 677.78360: 0.0574632 0.0595322 0.128624 0.791244
## 4: 676.56673: 0.0574672 0.0578612 0.145530 0.800982
## 5: 676.41616: 0.0574728 0.0501012 0.148076 0.801251
## 6: 676.39770: 0.0575149 0.0479631 0.153493 0.806938
## 7: 676.35603: 0.0575707 0.0503953 0.155725 0.799526
## 8: 676.35321: 0.0575740 0.0516521 0.154712 0.799273
## 9: 676.35116: 0.0576117 0.0508370 0.153527 0.799687
## 10: 676.34883: 0.0576821 0.0509824 0.152959 0.800597
## 11: 676.34843: 0.0577753 0.0510167 0.152858 0.800436
## 12: 676.34782: 0.0579558 0.0513205 0.153406 0.799787
## 13: 676.34677: 0.0585844 0.0507644 0.151597 0.802032
## 14: 676.34543: 0.0592346 0.0505752 0.151734 0.801648
## 15: 676.34379: 0.0598848 0.0507691 0.152091 0.801423
## 16: 676.34237: 0.0612280 0.0515175 0.152682 0.799837
## 17: 676.34216: 0.0615882 0.0514023 0.153172 0.799678
## 18: 676.34213: 0.0615234 0.0515312 0.153421 0.799403
## 19: 676.34213: 0.0615413 0.0515026 0.153362 0.799470
## 20: 676.34213: 0.0615412 0.0515024 0.153362 0.799470
##
## Final Estimate of the Negative LLH:
## LLH: 990.05 norm LLH: 1.8858
## mu omega alpha1 beta1
## 0.11186 0.17015 0.15336 0.79947
##
## R-optimhess Difference Approximated Hessian Matrix:
## mu omega alpha1 beta1
## mu -264.5116 -0.5929 20.107 -14.178
## omega -0.5929 -1701.2250 -2007.091 -3310.513
## alpha1 20.1069 -2007.0913 -4507.020 -5408.811
## beta1 -14.1779 -3310.5127 -5408.811 -7808.418
## attr(,"time")
## Time difference of 0.005156 secs
##
## --- END OF TRACE ---
##
##
## Time to Estimate Parameters:
## Time difference of 0.029199 secs
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
#Plotting the return volatility in our observation period
a <- coef(garchFi)
b<-formula(garchFi)
c<-volatility(garchFi)
plot(c)
#Predicting volatilty for next 10 days
predict(garchFi, n.ahead =10)
## meanForecast meanError standardDeviation
## 1 0.11186 2.8451 2.8451
## 2 0.11186 2.8077 2.8077
## 3 0.11186 2.7715 2.7715
## 4 0.11186 2.7366 2.7366
## 5 0.11186 2.7030 2.7030
## 6 0.11186 2.6705 2.6705
## 7 0.11186 2.6392 2.6392
## 8 0.11186 2.6090 2.6090
## 9 0.11186 2.5799 2.5799
## 10 0.11186 2.5519 2.5519
#Garch with SD
garchfi2<-garchFit(~garch(1,1), data=GETSComp, cond.dist = "std")
##
## Series Initialization:
## ARMA Model: arma
## Formula Mean: ~ arma(0, 0)
## GARCH Model: garch
## Formula Variance: ~ garch(1, 1)
## ARMA Order: 0 0
## Max ARMA Order: 0
## GARCH Order: 1 1
## Max GARCH Order: 1
## Maximum Order: 1
## Conditional Dist: std
## h.start: 2
## llh.start: 1
## Length of Series: 525
## Recursion Init: mci
## Series Scale: 1.8176
##
## Parameter Initialization:
## Initial Parameters: $params
## Limits of Transformations: $U, $V
## Which Parameters are Fixed? $includes
## Parameter Matrix:
## U V params includes
## mu -0.57460047 0.5746 0.05746 TRUE
## omega 0.00000100 100.0000 0.10000 TRUE
## alpha1 0.00000001 1.0000 0.10000 TRUE
## gamma1 -0.99999999 1.0000 0.10000 FALSE
## beta1 0.00000001 1.0000 0.80000 TRUE
## delta 0.00000000 2.0000 2.00000 FALSE
## skew 0.10000000 10.0000 1.00000 FALSE
## shape 1.00000000 10.0000 4.00000 TRUE
## Index List of Parameters to be Optimized:
## mu omega alpha1 beta1 shape
## 1 2 3 5 8
## Persistence: 0.9
##
##
## --- START OF TRACE ---
## Selected Algorithm: nlminb
##
## R coded nlminb Solver:
##
## 0: 663.82033: 0.0574600 0.100000 0.100000 0.800000 4.00000
## 1: 657.38631: 0.0574963 0.0478085 0.175549 0.805943 4.00103
## 2: 657.30018: 0.0574996 0.0495752 0.177353 0.808447 4.00120
## 3: 657.25868: 0.0575087 0.0464664 0.178732 0.809446 4.00149
## 4: 657.24385: 0.0575472 0.0455065 0.179153 0.816326 4.00284
## 5: 657.18043: 0.0576187 0.0406911 0.175819 0.819421 4.00514
## 6: 657.15915: 0.0577658 0.0396894 0.174125 0.823573 4.00994
## 7: 656.89589: 0.0650782 0.0307889 0.159851 0.835708 4.25547
## 8: 656.67857: 0.0722682 0.0410887 0.169495 0.815603 4.50174
## 9: 656.65383: 0.0701015 0.0419868 0.169508 0.804269 4.77626
## 10: 656.62236: 0.0567236 0.0380876 0.170626 0.810902 4.92674
## 11: 656.60252: 0.0564682 0.0379035 0.162657 0.817067 4.93259
## 12: 656.55374: 0.0651501 0.0369001 0.163548 0.820356 4.90136
## 13: 656.53479: 0.0682746 0.0354001 0.156853 0.823081 4.97168
## 14: 656.53122: 0.0671877 0.0357766 0.158726 0.822210 4.97076
## 15: 656.53108: 0.0671338 0.0356616 0.158347 0.822495 4.98205
## 16: 656.53106: 0.0671658 0.0356677 0.158301 0.822436 4.98933
## 17: 656.53106: 0.0671639 0.0356682 0.158311 0.822432 4.98951
## 18: 656.53106: 0.0671640 0.0356686 0.158311 0.822431 4.98951
##
## Final Estimate of the Negative LLH:
## LLH: 970.24 norm LLH: 1.8481
## mu omega alpha1 beta1 shape
## 0.12208 0.11784 0.15831 0.82243 4.98951
##
## R-optimhess Difference Approximated Hessian Matrix:
## mu omega alpha1 beta1 shape
## mu -324.9168 5.5822 -21.353 -27.649 -1.2116
## omega 5.5822 -1449.9008 -1588.634 -2739.585 -28.6692
## alpha1 -21.3529 -1588.6340 -3312.995 -4249.684 -49.0494
## beta1 -27.6490 -2739.5855 -4249.684 -6501.154 -69.0160
## shape -1.2116 -28.6692 -49.049 -69.016 -1.5972
## attr(,"time")
## Time difference of 0.010877 secs
##
## --- END OF TRACE ---
##
##
## Time to Estimate Parameters:
## Time difference of 0.03199 secs
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
sigma <- as.numeric(predict(garchfi2, n.ahead = 1)[3])
df <- as.numeric(coef(garchfi2)["shape"])
rand<-rt(100000, df=df)
#Plotting Histogram
hist(rand, breaks=100)
quant<-qt(.01, df=df)
a<-sigma*quant #VaR
b<-max(tail(sort(rand, decreasing = T),1000))*sigma
#VaR
a/b
## [1] 1.0018
#ES
d<-mean(tail(sort(rand, decreasing = T),1000))*sigma
head(d/c)
## [1] -7.0036 -7.5542 -8.1439 -8.7308 -9.3042 -9.0054
Markovitz Mean Variance Optimization
#Monthly data for all stocks
JPM.Monthly<-to.monthly(data.JPM.Pandemic)
GS.Monthly<-to.monthly(data.GS.Pandemic)
DTE.Monthly<-to.monthly(data.DTE.Pandemic)
AES.Monthly<-to.monthly(data.AES.Pandemic)
AAPL.Monthly<-to.monthly(data.AAPL.Pandemic)
AMZN.Monthly<-to.monthly(data.AMZN.Pandemic)
#Calculating return for AMZN
AMZN.monthly.ret <-Delt(AMZN.Monthly$data.AMZN.Pandemic.Adjusted)
names(AMZN.monthly.ret)<-paste("AMZN.ret.monthly")
AMZN.monthly.ret[c(1:3,nrow(AMZN.monthly.ret))]
## AMZN.ret.monthly
## Jul 2019 NA
## Aug 2019 -0.31583
## Sep 2019 -0.13535
## Jul 2021 3.14189
#Calculating return for JPM
JPM.monthly.ret <-Delt(JPM.Monthly$data.JPM.Pandemic.Adjusted)
names(JPM.monthly.ret)<-paste("JPM.ret.monthly")
JPM.monthly.ret[c(1:3,nrow(JPM.monthly.ret))]
## JPM.ret.monthly
## Jul 2019 NA
## Aug 2019 -0.254814
## Sep 2019 -0.040835
## Jul 2021 -0.217572
#Calculating return for GS
GS.monthly.ret <-Delt(GS.Monthly$data.GS.Pandemic.Adjusted)
names(GS.monthly.ret)<-paste("GS.ret.monthly")
GS.monthly.ret[c(1:3,nrow(GS.monthly.ret))]
## GS.ret.monthly
## Jul 2019 NA
## Aug 2019 -0.23178
## Sep 2019 0.17318
## Jul 2021 -0.34109
#Calculating return for DTE
DTE.monthly.ret <-Delt(DTE.Monthly$data.DTE.Pandemic.Adjusted)
names(DTE.monthly.ret)<-paste("DTE.ret.monthly")
DTE.monthly.ret[c(1:3,nrow(DTE.monthly.ret))]
## DTE.ret.monthly
## Jul 2019 NA
## Aug 2019 -0.036296
## Sep 2019 -0.024309
## Jul 2021 -0.582009
#Calculating return for AES
AES.monthly.ret <-Delt(AES.Monthly$data.AES.Pandemic.Adjusted)
names(AES.monthly.ret)<-paste("AES.ret.monthly")
AES.monthly.ret[c(1:3,nrow(AES.monthly.ret))]
## AES.ret.monthly
## Jul 2019 NA
## Aug 2019 -0.58027
## Sep 2019 -0.30263
## Jul 2021 -0.17699
#Calculating return for AAPL
AAPL.monthly.ret <-Delt(AAPL.Monthly$data.AAPL.Pandemic.Adjusted)
names(AAPL.monthly.ret)<-paste("AAPL.ret.monthly")
AAPL.monthly.ret[c(1:3,nrow(AAPL.monthly.ret))]
## AAPL.ret.monthly
## Jul 2019 NA
## Aug 2019 -0.69482
## Sep 2019 0.22863
## Jul 2021 0.11256
Variance Covariance Matrix
#Calculating Variance Covarince Matrix
options(digits=3)
returns <-
cbind(JPM.monthly.ret[-1,],GS.monthly.ret[-1,],AES.monthly.ret[-1,],DTE.monthly.ret[-1,],AAPL.monthly.ret[-1,],AMZN.monthly.ret[-1,])
names(returns) <-
paste(c("JPM.Ret","GS.Ret","AES.Ret","DTE.Ret","AAPL.Ret","AMZN.Ret"))
returns[c(1:3,nrow(returns)),]
## JPM.Ret GS.Ret AES.Ret DTE.Ret AAPL.Ret AMZN.Ret
## Aug 2019 -0.2548 -0.2318 -0.580 -0.0363 -0.695 -0.3158
## Sep 2019 -0.0408 0.1732 -0.303 -0.0243 0.229 -0.1354
## Oct 2019 0.1880 0.0455 0.499 0.9824 0.339 0.0516
## Jul 2021 -0.2176 -0.3411 -0.177 -0.5820 0.113 3.1419
#Converting data to matrix
mat.ret<-matrix(returns,nrow(returns))
colnames(mat.ret) <- c("JPM","GS","AES","DTE","AAPL","AMZN")
head(mat.ret)
## JPM GS AES DTE AAPL AMZN
## [1,] -0.2548 -0.2318 -0.580 -0.0363 -0.695 -0.3158
## [2,] -0.0408 0.1732 -0.303 -0.0243 0.229 -0.1354
## [3,] 0.1880 0.0455 0.499 0.9824 0.339 0.0516
## [4,] -0.5071 -0.5894 -0.558 -0.6315 -0.665 -0.3084
## [5,] 0.2608 0.8785 1.565 0.2263 1.162 0.3032
## [6,] 0.7753 1.4066 -0.397 0.4736 0.980 5.2108
VCOV <- cov(mat.ret)
#VCOV
VCOV
## JPM GS AES DTE AAPL AMZN
## JPM 0.3978 0.228 0.355 0.274 0.213 0.0671
## GS 0.2285 0.234 0.190 0.170 0.190 0.2384
## AES 0.3555 0.190 0.518 0.284 0.195 -0.1843
## DTE 0.2736 0.170 0.284 0.376 0.117 -0.1132
## AAPL 0.2130 0.190 0.195 0.117 0.393 0.3567
## AMZN 0.0671 0.238 -0.184 -0.113 0.357 1.7498
Mean Value Optimizer
#Average return for the portfolio
avg.ret <- matrix(apply(mat.ret,2,mean))
colnames(avg.ret) <- paste("Avg.Ret")
rownames(avg.ret) <- paste(c("JPM","GS","AES","DTE","AAPL","AMZN"))
avg.ret
## Avg.Ret
## JPM 0.0958
## GS 0.0773
## AES 0.1305
## DTE 0.1472
## AAPL 0.0983
## AMZN 0.3733
#set the smaller of the average returns as minimum return min.ret and the larger of the average returns as the max return max.ret.
min.ret <- min(avg.ret)
min.ret
## [1] 0.0773
#max return
max.ret <- max(avg.ret)
max.ret
## [1] 0.373
# Create a sequence that begins with min.ret and ends with max.ret with 100 increments in between.
increments = 100
tgt.ret <- seq(min.ret,max.ret,length=increments)
head(tgt.ret)
## [1] 0.0773 0.0803 0.0833 0.0863 0.0893 0.0923
tail(tgt.ret)
## [1] 0.358 0.361 0.364 0.367 0.370 0.373
#Construct Dummy Portfolio Standard Deviation Vector
tgt.sd <- rep(0,length=increments)
head(tgt.sd)
## [1] 0 0 0 0 0 0
tail(tgt.sd)
## [1] 0 0 0 0 0 0
wgt <- matrix(0,nrow=increments,ncol=length(avg.ret))
head(wgt)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0 0 0 0 0 0
## [2,] 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0
tail(wgt)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [95,] 0 0 0 0 0 0
## [96,] 0 0 0 0 0 0
## [97,] 0 0 0 0 0 0
## [98,] 0 0 0 0 0 0
## [99,] 0 0 0 0 0 0
## [100,] 0 0 0 0 0 0
#Run the quadprog Optimizer
for (i in 1:increments) {
Dmat <- 2*VCOV
dvec <- c(rep(0,length(avg.ret)))
Amat <- cbind(rep(1,length(avg.ret)),avg.ret,diag(1,nrow=ncol(returns)))
bvec <- c(1,tgt.ret[i],rep(0,ncol(returns)))
soln <- solve.QP(Dmat,dvec,Amat,bvec=bvec)
tgt.sd[i] <- sqrt(soln$value)
wgt[i,] <- soln$solution
}
#Checking tgd.sd
head(tgt.sd)
## [1] 0.457 0.457 0.457 0.457 0.457 0.457
tail(tgt.sd)
## [1] 0.880 0.888 0.895 0.902 0.910 0.917
options(scipen=100)
head(wgt)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0 0.512 0.0207 0.27 0.16 0.0368
## [2,] 0 0.512 0.0207 0.27 0.16 0.0368
## [3,] 0 0.512 0.0207 0.27 0.16 0.0368
## [4,] 0 0.512 0.0207 0.27 0.16 0.0368
## [5,] 0 0.512 0.0207 0.27 0.16 0.0368
## [6,] 0 0.512 0.0207 0.27 0.16 0.0368
# Overwrite the first entries, thaty are not zero due to a calculation error.Also rename the column headers.
colnames(wgt) <- paste(c("wgt.JPM","wgt.GS","wgt.AES","wgt.DTE","wgt.AAPL","wgt.AMZN"))
wgt[1,1] <- 0
wgt[nrow(wgt),2] <- 0
head(wgt)
## wgt.JPM wgt.GS wgt.AES wgt.DTE wgt.AAPL wgt.AMZN
## [1,] 0 0.512 0.0207 0.27 0.16 0.0368
## [2,] 0 0.512 0.0207 0.27 0.16 0.0368
## [3,] 0 0.512 0.0207 0.27 0.16 0.0368
## [4,] 0 0.512 0.0207 0.27 0.16 0.0368
## [5,] 0 0.512 0.0207 0.27 0.16 0.0368
## [6,] 0 0.512 0.0207 0.27 0.16 0.0368
# Combine Portfolio Returns, Portfolio Standard Deviations, and PortfolioWeights
tgt.port <- data.frame(cbind(tgt.ret,tgt.sd,wgt))
head(tgt.port)
## tgt.ret tgt.sd wgt.JPM wgt.GS wgt.AES wgt.DTE wgt.AAPL wgt.AMZN
## 1 0.0773 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 2 0.0803 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 3 0.0833 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 4 0.0863 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 5 0.0893 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 6 0.0923 0.457 0 0.512 0.0207 0.27 0.16 0.0368
minvar.port <-subset(tgt.port,tgt.port$tgt.sd==min(tgt.port$tgt.sd))
head(minvar.port)
## tgt.ret tgt.sd wgt.JPM wgt.GS wgt.AES wgt.DTE wgt.AAPL wgt.AMZN
## 1 0.0773 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 2 0.0803 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 3 0.0833 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 4 0.0863 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 5 0.0893 0.457 0 0.512 0.0207 0.27 0.16 0.0368
## 6 0.0923 0.457 0 0.512 0.0207 0.27 0.16 0.0368
Tangency Portfolio
#3-month treasury as of end of Dec-31-2020 was 0.09%
riskfree = .0009/12
tgt.port$Sharpe <- (tgt.port$tgt.ret-riskfree)/tgt.port$tgt.sd
head(tgt.port)
## tgt.ret tgt.sd wgt.JPM wgt.GS wgt.AES wgt.DTE wgt.AAPL wgt.AMZN Sharpe
## 1 0.0773 0.457 0 0.512 0.0207 0.27 0.16 0.0368 0.169
## 2 0.0803 0.457 0 0.512 0.0207 0.27 0.16 0.0368 0.175
## 3 0.0833 0.457 0 0.512 0.0207 0.27 0.16 0.0368 0.182
## 4 0.0863 0.457 0 0.512 0.0207 0.27 0.16 0.0368 0.189
## 5 0.0893 0.457 0 0.512 0.0207 0.27 0.16 0.0368 0.195
## 6 0.0923 0.457 0 0.512 0.0207 0.27 0.16 0.0368 0.202
# Identify the portfolio with the highest Sharpe Ratio and that is the tangency portfolio.
tangency.port <-subset(tgt.port,tgt.port$Sharpe==max(tgt.port$Sharpe))
tangency.port
## tgt.ret tgt.sd wgt.JPM wgt.GS wgt.AES wgt.DTE wgt.AAPL
## 100 0.373 0.917 -0.0000000000000000787 0 0.329 0.806 0
## wgt.AMZN Sharpe
## 100 0.567 0.407
Plot the Mean-Variance (MV) Efficient Frontier
#Efficient Frontier
eff.frontier <-subset(tgt.port,tgt.port$tgt.ret>=minvar.port$tgt.ret)
eff.frontier[c(1:3,nrow(eff.frontier)),]
## tgt.ret tgt.sd wgt.JPM wgt.GS wgt.AES wgt.DTE wgt.AAPL
## 1 0.0773 0.457 0.0000000000000000000 0.512 0.0207 0.270 0.16
## 2 0.0803 0.457 0.0000000000000000000 0.512 0.0207 0.270 0.16
## 3 0.0833 0.457 0.0000000000000000000 0.512 0.0207 0.270 0.16
## 100 0.3733 0.917 -0.0000000000000000787 0.000 0.3285 0.806 0.00
## wgt.AMZN Sharpe
## 1 0.0368 0.169
## 2 0.0368 0.175
## 3 0.0368 0.182
## 100 0.5674 0.407
#Plot Mean-Variance(MV) Efficient Frontier of Portfolio- Six
plot(x=tgt.sd,
y=tgt.ret,
col="green",
xlab="Portfolio Risk",
ylab="Portfolio Return",
main="Mean-Variance(MV) Efficient Frontier of Portfolio- Six
Securities Based on the Quadratic Programming Approach")
abline(h=0,lty=1)
points(x=minvar.port$tgt.sd,y=minvar.port$tgt.ret,pch=17,cex=3)
points(x=tangency.port$tgt.sd,y=tangency.port$tgt.ret,pch=19,cex=3)
points(x=eff.frontier$tgt.sd,y=eff.frontier$tgt.ret)
Diversification Benefits
#Calcculating covarionace of Return series
Idx <- interpNA(returns, method = "before")
R <- returnseries(Idx, method = "discrete", trim = TRUE)
V <- cov(R)
head(Idx)
## JPM.Ret GS.Ret AES.Ret DTE.Ret AAPL.Ret AMZN.Ret
## Aug 2019 -0.2548 -0.2318 -0.580 -0.0363 -0.695 -0.3158
## Sep 2019 -0.0408 0.1732 -0.303 -0.0243 0.229 -0.1354
## Oct 2019 0.1880 0.0455 0.499 0.9824 0.339 0.0516
## Nov 2019 -0.5071 -0.5894 -0.558 -0.6315 -0.665 -0.3084
## Dec 2019 0.2608 0.8785 1.565 0.2263 1.162 0.3032
## Jan 2020 0.7753 1.4066 -0.397 0.4736 0.980 5.2108
# The allocations according to the four portfolio optimizations are then extracted by means of the Weights() method and assigned to the objects GMVw, MDPw, MTDw, and ERCw for the global-minimum variance, most-diversified, minimum tail-dependent, and equal-risk contributed solutions, respectively.
#The global-minimum variance portfolio.
GMVw <- Weights(PGMV(R))
## Iteration: 0
## pobj: 18561.8
## dobj: 18560.7
## pinf: 2.61181
## dinf: 3.9396
## dgap: 10.308
##
## Iteration: 1
## pobj: 18561.8
## dobj: 18561.1
## pinf: 0.284794
## dinf: 0.429577
## dgap: 1.70433
##
## Iteration: 2
## pobj: 18561.8
## dobj: 18561.4
## pinf: 0.168441
## dinf: 0.254072
## dgap: 1.07867
##
## Iteration: 3
## pobj: 18561.8
## dobj: 18561.7
## pinf: 0.162616
## dinf: 0.245286
## dgap: 1.06163
##
## Iteration: 4
## pobj: 18561.8
## dobj: 18562.4
## pinf: 0.16231
## dinf: 0.244824
## dgap: 1.06037
##
## Iteration: 5
## pobj: 18561.8
## dobj: 18564.2
## pinf: 0.162256
## dinf: 0.244743
## dgap: 1.06021
##
## Iteration: 6
## pobj: 21236.5
## dobj: 22170.7
## pinf: 0.0302418
## dinf: 0.0456161
## dgap: 236.744
##
## Iteration: 7
## pobj: 21440.7
## dobj: 22201.8
## pinf: 0.0235934
## dinf: 0.0355878
## dgap: 201.284
##
## Iteration: 8
## pobj: 21457.8
## dobj: 22259.9
## pinf: 0.0230797
## dinf: 0.0348129
## dgap: 200.216
##
## Iteration: 9
## pobj: 28747.4
## dobj: 25460
## pinf: 0.000465606
## dinf: 0.00070231
## dgap: 3505.35
##
## Iteration: 10
## pobj: 26485.5
## dobj: 25937.3
## pinf: 4.74065e-14
## dinf: 1.10824e-10
## dgap: 548.181
##
## Iteration: 11
## pobj: 26024.6
## dobj: 25969.9
## pinf: 9.25926e-14
## dinf: 1.57571e-10
## dgap: 54.6511
##
## Iteration: 12
## pobj: 25974.3
## dobj: 25971.2
## pinf: 1.803e-13
## dinf: 2.54138e-10
## dgap: 3.12895
##
## Iteration: 13
## pobj: 25974.3
## dobj: 25977
## pinf: 5.50124e-05
## dinf: 1.21332e-09
## dgap: 0.157802
##
## Iteration: 14
## pobj: 25974.3
## dobj: 25977.2
## pinf: 5.77897e-05
## dinf: 4.28858e-09
## dgap: 0.00789355
##
## Iteration: 15
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.79287e-05
## dinf: 1.47176e-09
## dgap: 0.000394686
##
## Iteration: 16
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.79356e-05
## dinf: 6.89337e-10
## dgap: 1.97343e-05
##
## Iteration: 17
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 6.16699e-10
## dgap: 9.86716e-07
##
## Iteration: 18
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 7.55579e-10
## dgap: 4.93358e-08
##
## Iteration: 19
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 1.0933e-08
## dgap: 2.46679e-09
##
## Iteration: 20
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.23639e-09
## dgap: 1.2334e-10
##
## Iteration: 21
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37227e-09
## dgap: 6.16698e-12
##
## Iteration: 22
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37694e-09
## dgap: 3.08349e-13
##
## Iteration: 23
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40241e-09
## dgap: 1.54174e-14
##
## Iteration: 24
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37258e-09
## dgap: 7.70872e-16
##
## Iteration: 25
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.39268e-09
## dgap: 3.85436e-17
##
## Iteration: 26
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3848e-09
## dgap: 1.92718e-18
##
## Iteration: 27
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38132e-09
## dgap: 9.6359e-20
##
## Iteration: 28
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40155e-09
## dgap: 4.81795e-21
##
## Iteration: 29
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3753e-09
## dgap: 2.40898e-22
##
## Iteration: 30
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37726e-09
## dgap: 1.20449e-23
##
## Iteration: 31
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40933e-09
## dgap: 6.02244e-25
##
## Iteration: 32
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37646e-09
## dgap: 3.01122e-26
##
## Iteration: 33
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37629e-09
## dgap: 1.50561e-27
##
## Iteration: 34
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3848e-09
## dgap: 7.52805e-29
##
## Iteration: 35
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37493e-09
## dgap: 3.76402e-30
##
## Iteration: 36
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37258e-09
## dgap: 1.88201e-31
##
## Iteration: 37
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37319e-09
## dgap: 9.41006e-33
##
## Iteration: 38
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38325e-09
## dgap: 4.70503e-34
##
## Iteration: 39
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.41022e-09
## dgap: 2.35251e-35
##
## Iteration: 40
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37551e-09
## dgap: 1.17626e-36
##
## Iteration: 41
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38854e-09
## dgap: 5.88129e-38
##
## Iteration: 42
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37513e-09
## dgap: 2.94064e-39
##
## Iteration: 43
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37726e-09
## dgap: 1.47032e-40
##
## Iteration: 44
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40856e-09
## dgap: 7.35161e-42
##
## Iteration: 45
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40215e-09
## dgap: 3.6758e-43
##
## Iteration: 46
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37609e-09
## dgap: 1.8379e-44
##
## Iteration: 47
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37258e-09
## dgap: 9.18951e-46
##
## Iteration: 48
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38035e-09
## dgap: 4.59476e-47
##
## Iteration: 49
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37513e-09
## dgap: 2.29738e-48
##
## Iteration: 50
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37222e-09
## dgap: 1.14869e-49
##
## Iteration: 51
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38226e-09
## dgap: 5.74344e-51
##
## Iteration: 52
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3753e-09
## dgap: 2.87172e-52
##
## Iteration: 53
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37377e-09
## dgap: 1.43586e-53
##
## Iteration: 54
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3728e-09
## dgap: 7.17931e-55
##
## Iteration: 55
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37222e-09
## dgap: 3.58965e-56
##
## Iteration: 56
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3846e-09
## dgap: 1.79483e-57
##
## Iteration: 57
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38151e-09
## dgap: 8.97413e-59
##
## Iteration: 58
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37609e-09
## dgap: 4.48707e-60
##
## Iteration: 59
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37297e-09
## dgap: 2.24353e-61
##
## Iteration: 60
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37803e-09
## dgap: 1.12177e-62
##
## Iteration: 61
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37462e-09
## dgap: 5.60883e-64
##
## Iteration: 62
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40215e-09
## dgap: 2.80442e-65
##
## Iteration: 63
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38274e-09
## dgap: 1.40221e-66
##
## Iteration: 64
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37667e-09
## dgap: 7.01104e-68
##
## Iteration: 65
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38429e-09
## dgap: 3.50552e-69
##
## Iteration: 66
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.375e-09
## dgap: 1.75276e-70
##
## Iteration: 67
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40155e-09
## dgap: 8.7638e-72
##
## Iteration: 68
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3811e-09
## dgap: 4.3819e-73
##
## Iteration: 69
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37568e-09
## dgap: 2.19095e-74
##
## Iteration: 70
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37455e-09
## dgap: 1.09548e-75
##
## Iteration: 71
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38074e-09
## dgap: 5.47738e-77
##
## Iteration: 72
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.375e-09
## dgap: 2.73869e-78
##
## Iteration: 73
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37413e-09
## dgap: 1.36934e-79
##
## Iteration: 74
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37513e-09
## dgap: 6.84672e-81
##
## Iteration: 75
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37687e-09
## dgap: 3.42336e-82
##
## Iteration: 76
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.41998e-09
## dgap: 1.71168e-83
##
## Iteration: 77
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37268e-09
## dgap: 8.5584e-85
##
## Iteration: 78
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.39432e-09
## dgap: 4.2792e-86
##
## Iteration: 79
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38158e-09
## dgap: 2.1396e-87
##
## Iteration: 80
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37646e-09
## dgap: 1.0698e-88
##
## Iteration: 81
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.375e-09
## dgap: 5.349e-90
##
## Iteration: 82
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3839e-09
## dgap: 2.6745e-91
##
## Iteration: 83
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40446e-09
## dgap: 1.33725e-92
##
## Iteration: 84
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38545e-09
## dgap: 6.68625e-94
##
## Iteration: 85
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.3728e-09
## dgap: 3.34312e-95
##
## Iteration: 86
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.40446e-09
## dgap: 1.67156e-96
##
## Iteration: 87
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.43569e-09
## dgap: 8.35781e-98
##
## Iteration: 88
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38267e-09
## dgap: 4.17891e-99
##
## Iteration: 89
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38267e-09
## dgap: 2.08945e-100
##
## Iteration: 90
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37413e-09
## dgap: 1.04473e-101
##
## Iteration: 91
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38093e-09
## dgap: 5.22363e-103
##
## Iteration: 92
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37261e-09
## dgap: 2.61182e-104
##
## Iteration: 93
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.39136e-09
## dgap: 1.30591e-105
##
## Iteration: 94
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37222e-09
## dgap: 6.52954e-107
##
## Iteration: 95
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38883e-09
## dgap: 3.26477e-108
##
## Iteration: 96
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38969e-09
## dgap: 1.63238e-109
##
## Iteration: 97
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.38286e-09
## dgap: 8.16192e-111
##
## Iteration: 98
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37229e-09
## dgap: 4.08096e-112
##
## Iteration: 99
## pobj: 25974.3
## dobj: 25977.3
## pinf: 5.7936e-05
## dinf: 4.37375e-09
## dgap: 2.04048e-113
##
## Optimal solution not determined in 100 iteration(s).
#The most diversified Portfolio
MDPw <- Weights(PMD(R))
## Iteration: 0
## pobj: 0.0968723
## dobj: -0.947098
## pinf: 0
## dinf: 2.98757
## dgap: 1.04397
##
## Iteration: 1
## pobj: 0.0957649
## dobj: 0.00910916
## pinf: 5.00371e-17
## dinf: 0.247451
## dgap: 0.0866557
##
## Iteration: 2
## pobj: 0.0927775
## dobj: 0.0761668
## pinf: 7.07631e-17
## dinf: 0.0410278
## dgap: 0.0166106
##
## Iteration: 3
## pobj: 0.0915276
## dobj: 0.0883556
## pinf: 6.93889e-17
## dinf: 0.00537082
## dgap: 0.003172
##
## Iteration: 4
## pobj: 0.0911306
## dobj: 0.0903417
## pinf: 3.46945e-17
## dinf: 0.000702537
## dgap: 0.000788922
##
## Iteration: 5
## pobj: 0.091059
## dobj: 0.0909149
## pinf: 7.88107e-17
## dinf: 4.60475e-05
## dgap: 0.000144078
##
## Iteration: 6
## pobj: 0.0910548
## dobj: 0.09104
## pinf: 6.86915e-17
## dinf: 2.58324e-06
## dgap: 1.4771e-05
##
## Iteration: 7
## pobj: 0.0910547
## dobj: 0.0910539
## pinf: 6.3596e-17
## dinf: 1.32458e-07
## dgap: 8.54163e-07
##
## Optimal solution found.
#The equal-risk contributed Portfolio
ERCw <- Weights(PERC(V))
## Iteration: 0
## pobj: 0
## dobj: 3.10768e+06
## pinf: 1
## dinf: 1
## dgap: 7
##
## Iteration: 1
## pobj: -2.95229e+06
## dobj: 7774.88
## pinf: 0.952496
## dinf: 0.050002
## dgap: 0.350209
##
## Iteration: 2
## pobj: -156985
## dobj: 27.6728
## pinf: 0.0505241
## dinf: 0.00252237
## dgap: 0.0182416
##
## Iteration: 3
## pobj: -8448.04
## dobj: 9.14291
## pinf: 0.00272137
## dinf: 0.000268944
## dgap: 0.00244755
##
## Iteration: 4
## pobj: -411.337
## dobj: 9.026
## pinf: 0.000135266
## dinf: 0.000102757
## dgap: 0.000479246
##
## Iteration: 5
## pobj: -127.492
## dobj: 8.98212
## pinf: 4.3915e-05
## dinf: 4.66023e-05
## dgap: 0.000166702
##
## Iteration: 6
## pobj: -5.71116
## dobj: 8.95781
## pinf: 4.72023e-06
## dinf: 1.28668e-05
## dgap: 2.5897e-05
##
## Iteration: 7
## pobj: 8.00169
## dobj: 8.95371
## pinf: 3.06343e-07
## dinf: 2.03371e-06
## dgap: 2.14103e-06
##
## Iteration: 8
## pobj: 8.89104
## dobj: 8.95358
## pinf: 2.01238e-08
## dinf: 1.69518e-07
## dgap: 1.47369e-07
##
## Optimal solution found.
#Minimum tail-dependent portfolio
MTDw <- Weights(PMTD(R))
## Iteration: 0
## pobj: 0.350159
## dobj: -0.694728
## pinf: 0
## dinf: 3.00911
## dgap: 1.04489
##
## Iteration: 1
## pobj: 0.348754
## dobj: 0.265618
## pinf: 6.20634e-17
## dinf: 0.238911
## dgap: 0.0831359
##
## Iteration: 2
## pobj: 0.344182
## dobj: 0.331936
## pinf: 1.19381e-16
## dinf: 0.0300596
## dgap: 0.0122463
##
## Iteration: 3
## pobj: 0.341364
## dobj: 0.33861
## pinf: 2.22045e-16
## dinf: 0.0031782
## dgap: 0.0027537
##
## Iteration: 4
## pobj: 0.340376
## dobj: 0.339825
## pinf: 2.22045e-16
## dinf: 0.000100002
## dgap: 0.000551229
##
## Iteration: 5
## pobj: 0.340147
## dobj: 0.340078
## pinf: 6.66134e-16
## dinf: 2.87904e-06
## dgap: 6.85831e-05
##
## Iteration: 6
## pobj: 0.340118
## dobj: 0.340114
## pinf: 1.33227e-15
## dinf: 1.47854e-07
## dgap: 4.76785e-06
##
## Iteration: 7
## pobj: 0.340116
## dobj: 0.340116
## pinf: 2.44249e-15
## dinf: 7.41479e-09
## dgap: 2.4573e-07
##
## Optimal solution found.
# The weights are then collected in the matrix object W. This object is then used in the call to the apply() function to determine the marginal risk contributions for each of the four optimal weight vectors.
W <- cbind(GMVw, MDPw, MTDw, ERCw)
MRC <- apply(W, 2, mrc, Sigma = V)
rownames(MRC) <- colnames(Idx)
colnames(MRC) <- c("GMV", "MDP", "MTD", "ERC")
oldpar <- par(no.readonly = TRUE)
#Plotting dot chart
par(mfrow = c(2, 2))
dotchart(GMVw, xlim = c(0, 40), main = "GMV Allocation", pch = 19)
dotchart(MDPw - GMVw, xlim = c(-20, 20), main = "MDP vs. GMV",
pch = 19)
abline(v = 0, col = "blue")
dotchart(MTDw - GMVw, xlim = c(-20, 20), main = "MTD vs. GMV", pch = 19)
abline(v = 0, col = "blue")
dotchart(ERCw - GMVw, xlim = c(-20, 20), main = "ERC vs. GMV",
pch = 19)
abline(v = 0, col = "blue")
#Rdec
Rdec <- R / 100
Pret <- apply(W, 2, function(x) Rdec %*% x / 100)
SD <- apply(Pret, 2, sd)
ES95 <-
apply(Pret, 2, function(x)
abs(ES(R = x, method = "modified")))
DR <- apply(W, 2, dr, Sigma = V)
CR <- apply(W, 2, cr, Sigma = V)
## Summarising results
Res <- rbind(SD, ES95, DR, CR)
Res
## GMVw MDPw MTDw ERCw
## SD 2.28 4.362 5.775 3.354
## ES95 1.00 1.000 1.000 1.000
## DR 1.81 2.343 2.257 2.264
## CR 0.29 0.219 0.236 0.175